//
// Author: Vladimir Migashko <migashko@gmail.com>, (C) 2011
//
// Copyright: See COPYING file that comes with this distribution
//

#ifndef FASYS_FASYS_SSERVICE_COMET_ASPECT_HPP
#define FASYS_FASYS_SSERVICE_COMET_ASPECT_HPP

#include "../aspect/http_json_aspect.hpp"
#include "method_aspect.hpp"
#include "content.hpp"


namespace fasys{ namespace sservice{

namespace ap = ::fas::pattern;
namespace ad = ::fas::adv;
namespace adio = ::fas::adv::io;
namespace aa = ::fas::aop;
namespace af = ::fas::filter;
namespace ajr = ::fas::adv::json_rpc3;

typedef ap::type_list_n<
  uri_advice,
  content_advice,
  json_rpc_advice,
  welcome_advice/*,
  messenger_server_writer_advice*/
>::type advice_list;

typedef aa::aspect<advice_list> content_aspect;

struct comet_aspect: aa::aspect_merge<
    aa::aspect_merge<http_json_aspect, content_aspect>::type,
    method_aspect
>::type {};
//typedef aa::aspect_merge< http_json_aspect, method_aspect>::type comet_aspect_;

//typedef aa::aspect_merge< comet_aspect_,  aa::aspect< aa::alias< ::fas::adv::asp::http::_outgoing_, _outgoing_> > >::type comet_aspect;


// 
}}

#endif
